home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / samples / Multimedia / Direct3D / MFCFog / fog.h < prev    next >
C/C++ Source or Header  |  2001-10-31  |  5KB  |  188 lines

  1. //-----------------------------------------------------------------------------
  2. // File: Fog.h
  3. //
  4. // Desc: Header file MFCFog sample app
  5. //
  6. //
  7. // Copyright (c) 1997-2001 Microsoft Corporation. All rights reserved.
  8. //-----------------------------------------------------------------------------
  9. #ifndef FOG_H
  10. #define FOG_H
  11.  
  12. #if _MSC_VER >= 1000
  13. #pragma once
  14. #endif
  15. #ifndef __AFXWIN_H__
  16. #error include 'stdafx.h' before including this file
  17. #endif
  18.  
  19.  
  20.  
  21.  
  22.  
  23. //-----------------------------------------------------------------------------
  24. // Name: class CAppDoc
  25. // Desc: Overridden CDocument class needed for the CFormView
  26. //-----------------------------------------------------------------------------
  27. class CAppDoc : public CDocument
  28. {
  29. protected:
  30.     DECLARE_DYNCREATE(CAppDoc)
  31.  
  32. // Overrides
  33.     // ClassWizard generated virtual function overrides
  34.     //{{AFX_VIRTUAL(CAppDoc)
  35.     public:
  36.     //}}AFX_VIRTUAL
  37.  
  38. // Implementation
  39.     //{{AFX_MSG(CAppDoc)
  40.         // NOTE - the ClassWizard will add and remove member functions here.
  41.         //    DO NOT EDIT what you see in these blocks of generated code !
  42.     //}}AFX_MSG
  43.     DECLARE_MESSAGE_MAP()
  44. };
  45.  
  46.  
  47.  
  48.  
  49. //-----------------------------------------------------------------------------
  50. // Name: class CAppFrameWnd
  51. // Desc: CFrameWnd-based class needed to override the CFormView's window style
  52. //-----------------------------------------------------------------------------
  53. class CAppFrameWnd : public CFrameWnd
  54. {
  55. protected:
  56.     DECLARE_DYNCREATE(CAppFrameWnd)
  57. public:
  58.     // ClassWizard generated virtual function overrides
  59.     //{{AFX_VIRTUAL(CAppFrameWnd)
  60.     public:
  61.     virtual BOOL PreCreateWindow( CREATESTRUCT& cs );
  62.     //}}AFX_VIRTUAL
  63.  
  64. protected:
  65.     //{{AFX_MSG(CAppFrameWnd)
  66.     //}}AFX_MSG
  67.     DECLARE_MESSAGE_MAP()
  68. };
  69.  
  70.  
  71.  
  72.  
  73. //-----------------------------------------------------------------------------
  74. // Name: class CApp
  75. // Desc: Main MFCapplication class derived from CWinApp.
  76. //-----------------------------------------------------------------------------
  77. class CApp : public CWinApp
  78. {
  79. public:
  80.  
  81. // Overrides
  82.     // ClassWizard generated virtual function overrides
  83.     //{{AFX_VIRTUAL(CApp)
  84.     public:
  85.     virtual BOOL InitInstance();
  86.     virtual BOOL OnIdle( LONG );
  87.     //}}AFX_VIRTUAL
  88.  
  89. // Implementation
  90.     //{{AFX_MSG(CApp)
  91.     //}}AFX_MSG
  92.     DECLARE_MESSAGE_MAP()
  93. };
  94.  
  95.  
  96.  
  97.  
  98. //-----------------------------------------------------------------------------
  99. // Name: class CAppForm
  100. // Desc: CFormView-based class which allows the UI to be created with a form
  101. //       (dialog) resource. This class manages all the controls on the form.
  102. //-----------------------------------------------------------------------------
  103. class CAppForm : public CFormView, public CD3DApplication
  104. {
  105. private:
  106.     BOOL    m_bHiResTerrain;
  107.     BOOL    m_bHiResTerrainOld;
  108.     DWORD   m_dwFogColor;
  109.     DWORD   m_dwFogMode;
  110.     BOOL    m_bCanDoTableFog;
  111.     BOOL    m_bCanDoVertexFog;
  112.     BOOL    m_bCanDoWFog;
  113.     BOOL    m_bDeviceUsesWFog;
  114.     BOOL    m_bRangeBasedFog;
  115.     BOOL    m_bUsingTableFog;
  116.     FLOAT   m_fFogStartSlider;
  117.     FLOAT   m_fFogEndSlider;
  118.     FLOAT   m_fFogStartValue;
  119.     FLOAT   m_fFogEndValue;
  120.     FLOAT   m_fFogDensity;
  121.     HWND    m_hwndRenderWindow;
  122.     HWND    m_hwndRenderFullScreen;
  123.     LPDIRECT3DTEXTURE8      m_pFloorTexture;
  124.     LPDIRECT3DVERTEXBUFFER8 m_pTerrainVB;
  125.     DWORD                   m_dwNumTerrainVertices;
  126.     LPDIRECT3DVERTEXBUFFER8 m_pColumnVB;
  127.     DWORD                   m_dwNumColumnVertices;
  128.  
  129.     HRESULT ConfirmDevice( D3DCAPS8*,DWORD,D3DFORMAT );
  130.     HRESULT OneTimeSceneInit();
  131.     HRESULT InitDeviceObjects();
  132.     HRESULT RestoreDeviceObjects();
  133.     HRESULT FrameMove();
  134.     HRESULT Render();
  135.     HRESULT InvalidateDeviceObjects();
  136.     HRESULT DeleteDeviceObjects();
  137.     HRESULT FinalCleanup();
  138.     virtual HRESULT AdjustWindowForChange();
  139.  
  140.     VOID    UpdateUIForDeviceCapabilites();
  141.     VOID    SetFogParameters();
  142.     HRESULT GenerateTerrainDisk( LPDIRECT3DDEVICE8 pd3dDevice, DWORD dwNumSegments,
  143.                                  FLOAT fScale );
  144.     HRESULT GenerateColumn( LPDIRECT3DDEVICE8 pd3dDevice, DWORD dwNumSegments,
  145.                             FLOAT fRadius, FLOAT fHeight );
  146.  
  147.  
  148. protected:
  149.     DECLARE_DYNCREATE(CAppForm)
  150.  
  151.              CAppForm();
  152.     virtual  ~CAppForm();
  153.  
  154. public:
  155.     BOOL IsReady() { return m_bReady; }
  156.     TCHAR* PstrFrameStats() { return m_strFrameStats; }
  157.     VOID RenderScene() { Render3DEnvironment(); }
  158.     HRESULT CheckForLostFullscreen();
  159.  
  160.     //{{AFX_DATA(CAppForm)
  161.     enum { IDD = IDD_FORMVIEW };
  162.     //}}AFX_DATA
  163.  
  164.     //{{AFX_VIRTUAL(CAppForm)
  165.     virtual void OnInitialUpdate();
  166.     //}}AFX_VIRTUAL
  167.  
  168.     //{{AFX_MSG(CAppForm)
  169.     afx_msg void OnToggleFullScreen();
  170.     afx_msg void OnChangeDevice();
  171.     afx_msg void OnHScroll( UINT, UINT, CScrollBar* );
  172.     afx_msg void OnFogColor();
  173.     afx_msg void OnRangeBasedFog();
  174.     afx_msg void OnVertexFog();
  175.     afx_msg void OnTableFog();
  176.     afx_msg void OnFogMode();
  177.     afx_msg void OnTerrainResolution();
  178.     //}}AFX_MSG
  179.     DECLARE_MESSAGE_MAP()
  180. };
  181.  
  182.  
  183.  
  184.  
  185. #endif
  186.  
  187.  
  188.